package main

import "fmt"

// 标准变量声明:var 关键字 + 变量名 + 变量类型 = 初始值
func standardVarDeclare() {
	var i int = 10
	println("i = ", i)
}

// 打印类型零值
// 一个变量如果仅被声明而没有被初始化,那么编译器就会给它自动赋予类型对应的零值
func printZeroValue() {
	var i int
	var i32 int32
	var ui64 uint64
	var f64 float64
	var b bool
	var s string
	var obj interface{}
	fmt.Printf("int 类型的零值: %+v\n", i)
	fmt.Printf("int32 类型的零值: %+v\n", i32)
	fmt.Printf("uint64 类型的零值: %+v\n", ui64)
	fmt.Printf("float64 类型的零值: %+v\n", f64)
	fmt.Printf("bool 类型的零值: %+v\n", b)
	fmt.Printf("string 类型的零值: %+v\n", s)
	fmt.Printf("接口类型的零值: %+v\n", obj)
}

// 通过变量块block的方式声明变量
func blockDeclare() {
	var (
		a int    = 128
		b int8   = 6
		s string = "hello"
		c rune   = 'A'
		t bool   = true
	)
	println(a, b, s, c, t)
}
